home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oh!X 2001 Spring
/
Oh!X 2001 Spring Special CD-ROM (Japan).7z
/
Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin
/
PUZZLE
/
puz01
/
perm2.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-02-20
|
771b
|
51 lines
/*
* perm2.c : 順列の生成(再帰版)
*
*/
#include <stdio.h>
#define N 4
#define TRUE 1
#define FALSE 0
char use_number[N + 1];
char perm[N];
void print_perm( void )
{
int i;
for( i = 0; i < N; i++ ){
printf("%d ", perm[i] );
}
printf("\n");
}
/* 順列を求める */
void make_perm( int n )
{
int i;
if( n == N ){
print_perm(); /* 順列の完成 */
} else {
for( i = 1; i <= N; i++ ){
if( use_number[i] == FALSE ){
use_number[i] = TRUE;
perm[n] = i;
make_perm( n + 1 ); /* 再帰呼び出し */
use_number[i] = FALSE;
}
}
}
}
int main()
{
int i;
for( i = 0; i < N; i++ ){
use_number[i] = FALSE;
}
make_perm( 0 );
return 0;
}
/* end of file */